package lanqiao._02算法训练.page04;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 问题描述
 * 　　青蛙X正准备跳过一座桥，这座桥被划分为N段，记青蛙所在的起始点为0，桥的末端为N。
 * 桥上的一些点有一些石子，这些点是无法跳上去的。青蛙每次跳跃能向前跳跃+1，+2，+3段，
 * 现在请你算出跳到末端的总方法数。如果无法到达，请输出”No Way!"
 * 输入格式
 * 　　输入数据共N行。
 * 　　第一行一个数字N，代表桥的长度。
 * 　　接下来N行，表示从点1~N的道路情况，每行一个数字0或1，1表示有石子。
 * 输出格式
 * 　　输出一行，为一个整数，代表方法数，无法到达为“No Way!"
 * 　　由于数据过大，我们只需要求出 对 1000000007 的余数即可
 * 样例输入-
 * 5
 * 1
 * 0
 * 0
 * 1
 * 0
 * 样例输出
 * 3
 * 数据规模和约定
 * 　　N <= 10^6
 * @since 2023 - 01 - 03 - 21:48
 */
public class _36进击的青蛙 {
}
class Main_36{
    static int mod = 1000000007;
    static class Reader{
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tokenizer = new StringTokenizer("");
        String next() throws IOException {
            if(!tokenizer.hasMoreTokens()){
                tokenizer = new StringTokenizer(reader.readLine());
            }
            return tokenizer.nextToken();
        }
        int nextInt() throws IOException {
            return Integer.parseInt(next());
        }
    }
    public static void main(String[] args) throws IOException {
        Reader reader = new Reader();
        int n = reader.nextInt();
        int[] nums = new int[n + 1];
        for(int i = 1; i <= n; i++){
            nums[i] = reader.nextInt();
        }
        long[] dp = new long[n + 1];
        dp[0] = 1;
        dp[1] = nums[1] == 0 ? 1 : 0;
        dp[2] = nums[2] == 0 ? 1 + dp[1] : 0;
        dp[3] = nums[3] == 0 ? 1 + dp[1] + dp[2]: 0;
        for(int i = 4; i <= n; i++){
            if(nums[i] == 0){
                dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
                dp[i] %= mod;
            }else{
                dp[i] = 0;
            }
        }
        if(dp[n] == 0){
            System.out.println("No Way!");
        }else{
            System.out.println(dp[n]);
        }
    }
}
